package Q8_04_Power_Set;
import java.util.*;
public class QuestionB {
public static ArrayList<Integer> convertIntToSet(int x, ArrayList<Integer> set) {
ArrayList<Integer> subset = new ArrayList<Integer>();
int index = 0;
for (int k = x; k > 0; k >>= 1) {
if ((k & 1) == 1) {
subset.add(set.get(index));
}
index++;
}
return subset;
}
public static ArrayList<ArrayList<Integer>> getSubsets(ArrayList<Integer> set) {
ArrayList<ArrayList<Integer>> allsubsets = new ArrayList<ArrayList<Integer>>();
int max = 1 << set.size(); /* Compute 2^n */
for (int k = 0; k < max; k++) {
ArrayList<Integer> subset = convertIntToSet(k, set);
allsubsets.add(subset);
}
return allsubsets;
}
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < 3; i++) {
list.add(i);
}
ArrayList<ArrayList<Integer>> subsets2 = getSubsets(list);
System.out.println(subsets2.toString());
}
}